- Status: Accepted.
- Technologies Used: AVFoundation, CoreMotion, SpriteKit, UIKit.
- Demo Video: https://youtu.be/pjSYAEYOPhk
The Swift Student Challenge is the best time to exit my comfort zone and make something new, bold, and outlandish. I've always believed that great software comes into being only when its creator is proud of it, just like a parent is with his child. As such, this was my chance to make myself proud and to go further than I ever went in the vast land of Swift programming. I stumbled upon an idea that had always intrigued and fascinated me: making a game with SpriteKit. I had no idea how to use this framework, nor how to get started learning it. Thankfully, the learning curve was a lot more straightforward than I had imagined, and after looking into the documentation and searching for help on developer forums, I told myself: « Wow! I can actually make a game! » And so I did. I started using SpriteKit and coding everything programmatically; because all challenges are challenging. With some visual assets from the vast SF Symbols library and my digital art skills, I made something unique to me that also felt at home on iOS. I also used the knowledge I had gained in physics class to implement electric fields and charged particles. I now knew what the game was to become. However, SpriteKit was not enough.
All the visuals were fantastic, but relying on sight as the only stimulated sense was not sufficient. The user has to feel the experience in more than one way. Therefore, I thought about invoking taste and smell, but this idea was not tangible. I then turned my attention to one of the most common yet most effective frameworks to achieve my goal. It was none other than AVFoundation to bring hearing senses into the mix and make the experience a lot more palpable for the users. A combination of visuals and sounds was the most logical and the safest bet. But wait, this was still not enough!
Focusing on software is no small feat, but why should I only be limited by the digital world? There are so much more possibilities with all the sensors embedded underneath the shell of our daily devices. Ever since the original iPhone pioneered the use of accelerometers on handheld devices, and the iPhone 4 propagated the use of gyroscopes in our daily drivers, so many new possibilities opened to developers. Hence, I seized my chance to learn about CoreMotion and implement a feature for each of these sensors. Indeed, the accelerometer provides an excellent opportunity to create a custom parallax effect, making software feel more in sync with the physical world. Besides, the gyroscope is the main star of the show as it is responsible for making the character move when the device is rotating on its z-axis.
All in all, the Swift Student Challenge is a genuinely enjoyable opportunity to revisit and learn new frameworks and technologies and to share that knowledge with others!
If you've shared or considered sharing your coding knowledge and enthusiasm for computer science with others, let us know.
The computer science community, especially the Swift developer community, is remarkably inclusive to all kinds of people. Sharing my knowledge with open-minded individuals is not a problem, and it's always fascinating to interact with people from so many different and diverse backgrounds. One way to connect with these fellow developers around the world is through social media platforms. Notably, ever since I've joined the likes of Twitter, I've been able to discover new developers, apps and technologies that would've otherwise just flown under the radar. In return, I share some snapshots of my coding journey and the personal discoveries I make, hoping others can learn something new themselves. The interactions don't only stop at one platform since hundreds of current and former WWDC Scholars and Swift Student Challenge winners, including myself, hold discussions, share resources and help each other in difficult times, all through a Discord server made by the community for the community.
In tandem with all the socialisation that can happen in these networks, I occasionally share code snippets on GitHub, ranging from HTML to C++ and, of course, passing by Swift. Indeed, I always find the number of code fragments and entire codebases that programmers freely share online to be incredible. Besides, I maintain a modest repository in which I share some tips in Swift for others to use and implement on their terms. Although these tips only account for a fraction of the entirety of the community's efforts, I believe that even small actions can make a tremendous impact on others. Therefore, I can't wait to share more with the world!
Sharing my knowledge with others doesn't exclude family and friends. Indeed, the former always support me throughout all the moments that involve blood, sweat and tears. They also help me imagine new ideas, create new features, and dabble with new concepts, and they are always the first ones to give their honest opinions about what I design and build. On the other hand, some of my close friends are always eager to discover what I do, and to share it with others, no matter my hesitation. Some friends also come to me for advice and opinion concerning computer science since they are thinking about following this technical path. Hence, I always encourage them to start playing with programming languages, and I'm constantly eager to give them advice when necessary.
In a nutshell, I love sharing all the experience and enthusiasm I can offer to others. This willingness to share never stops evolving, and I regularly think about new sharing opportunities in the back of my mind.
If you have one or more apps on the App Store created entirely by you as an individual, tell us about them. This will not influence the selection process.
I am immensely proud to say that I currently have two of my very own apps on the App Store. It wasn't the case before the beginning of this year. Indeed, I had been solely focusing on maintaining and updating a single app since 2018. That said, I was already remarkably proud to have one app on the App Store, so having two is more than a dream come true.
My first app, "Huh? • Dictionary & Thesaurus", released in March 2018, was my first big test in the independent iOS world. It was also my first shot at making and publishing my creation to the world. In essence, making it doesn't look complicated at first glance. Nevertheless, it was a real challenge for my beginner self because I had never coded with Swift nor with UIKit in the past. Following many significant iterations, my first app now stands as a reasonable option for users who want the ability to choose one of a myriad of different dictionary sources in seven distinct languages. In effect, I am proud to say that it had reached the top charts in the reference category in my home country of Lebanon, and I am keen to enhance it further to achieve the same goal in other countries.
Last but certainly not least, my second app, "Who Am I? - Christmas Edition", came to fruition late last year after having challenged myself to swiftly build and publish an app made with SwiftUI for Christmas. This time, the real test was to conceive a functional and nice looking piece of software with a framework that I had never extensively used before. Yet, SwiftUI was impressively uncomplicated, and time wasn't an issue with this fabulous young framework. As such, I had also decided to use Machine Learning, for the first time, to train a model that classifies an image in one of the multiple Christmas-related categories. So, perhaps my app could describe you as being 50% an elf and 50% the Grinch, which is an entertaining way to have fun with friends and family during the festive season.
In conclusion, the two apps I have on the App Store mainly helped me and continue to help me learn and gain experience in the saturated field of iOS development. Besides, adding a question mark at the end of my apps' name is undoubtedly a sign that the future is still unknown and that I might live from making apps independently very soon.
First and foremost, I would like to thank you for taking your time to make this competition possible for the hundreds and thousands of students participating worldwide.
The playground I made has an objective to introduce the concept of electric fields to learners of all ages, from young toddlers to mature adults, with no exception. It provides an incredible learning experience with even more outstanding entertainment. Indeed, new knowledge is gained subconsciously with electric repulsion, attraction and the Lorentz force all grasped in a rudimentary manner.
Before running the playground, it is preferable to set the device in landscape mode and turn on lock rotation for the best possible experience. You may also please set the playground view in fullscreen (hiding the code) before running it for a well-rendered, immersive experience. All attribution concerning used audio assets, and other minor details, can be found in the playground's main source code page.